using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._AviationTools._Charting._DataManagement
{
    /// <summary>
    /// <para>Report Aviation Chart Changes</para>
    /// <para>Compares feature classes in two enterprise geodatabase versions and returns the differences in a report. You can filter the reported changes to determine which charts are affected by the differing data sources. You can set  filters based on areas of interest (AOI), definition queries, and Report Chart Changes preferences.</para>
    /// <para>比较两个企业级地理数据库版本中的要素类，并在报表中返回差异。您可以筛选报告的更改，以确定哪些图表受不同数据源的影响。您可以根据感兴趣区域 （AOI）、定义查询和“报表图表更改”首选项设置过滤器。</para>
    /// </summary>    
    [DisplayName("Report Aviation Chart Changes")]
    public class ReportAviationChartChanges : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public ReportAviationChartChanges()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_aviation_workspace">
        /// <para>Aviation Workspace</para>
        /// <para><xdoc>
        ///   <para>The versioned enterprise ArcGIS Aviation Charting AIS geodatabase.</para>
        ///   <para>The workspace cannot be a file geodatabase.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>版本化企业级 ArcGIS Aviation Charting AIS 地理数据库。</para>
        ///   <para>工作空间不能是文件地理数据库。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_base_version">
        /// <para>Base Version</para>
        /// <para>The version of the ArcGIS Aviation Charting AIS geodatabase to compare to.</para>
        /// <para>要与之进行比较的 ArcGIS Aviation Charting AIS 地理数据库的版本。</para>
        /// </param>
        /// <param name="_comparison_version">
        /// <para>Comparison Version</para>
        /// <para>The version of the ArcGIS Aviation Charting AIS geodatabase to compare to the Base Version parameter value.</para>
        /// <para>要与基本版本参数值进行比较的 ArcGIS Aviation Charting AIS 地理数据库的版本。</para>
        /// </param>
        /// <param name="_report_preference">
        /// <para>Report Preference</para>
        /// <para><xdoc>
        ///   <para>The Report Chart Changes preference setting from the preference table.</para>
        ///   <para>This preference will define which feature classes will be included in your report.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>首选项表中的“报表图表更改”首选项设置。</para>
        ///   <para>此首选项将定义报表中将包含哪些要素类。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_report_name">
        /// <para>Report Name</para>
        /// <para>The unique name of the report, containing changes between the geodatabase versions.</para>
        /// <para>报表的唯一名称，包含地理数据库版本之间的更改。</para>
        /// </param>
        public ReportAviationChartChanges(object _aviation_workspace, object _base_version, object _comparison_version, object _report_preference, object _report_name)
        {
            this._aviation_workspace = _aviation_workspace;
            this._base_version = _base_version;
            this._comparison_version = _comparison_version;
            this._report_preference = _report_preference;
            this._report_name = _report_name;
        }
        public override string ToolboxName => "Aviation Tools";

        public override string ToolName => "Report Aviation Chart Changes";

        public override string CallName => "aviation.ReportAviationChartChanges";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_aviation_workspace, _base_version, _comparison_version, _report_preference, _report_name, _aoi_features, _report_id];

        /// <summary>
        /// <para>Aviation Workspace</para>
        /// <para><xdoc>
        ///   <para>The versioned enterprise ArcGIS Aviation Charting AIS geodatabase.</para>
        ///   <para>The workspace cannot be a file geodatabase.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>版本化企业级 ArcGIS Aviation Charting AIS 地理数据库。</para>
        ///   <para>工作空间不能是文件地理数据库。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Aviation Workspace")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _aviation_workspace { get; set; }


        /// <summary>
        /// <para>Base Version</para>
        /// <para>The version of the ArcGIS Aviation Charting AIS geodatabase to compare to.</para>
        /// <para>要与之进行比较的 ArcGIS Aviation Charting AIS 地理数据库的版本。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Base Version")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _base_version { get; set; }


        /// <summary>
        /// <para>Comparison Version</para>
        /// <para>The version of the ArcGIS Aviation Charting AIS geodatabase to compare to the Base Version parameter value.</para>
        /// <para>要与基本版本参数值进行比较的 ArcGIS Aviation Charting AIS 地理数据库的版本。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Comparison Version")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _comparison_version { get; set; }


        /// <summary>
        /// <para>Report Preference</para>
        /// <para><xdoc>
        ///   <para>The Report Chart Changes preference setting from the preference table.</para>
        ///   <para>This preference will define which feature classes will be included in your report.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>首选项表中的“报表图表更改”首选项设置。</para>
        ///   <para>此首选项将定义报表中将包含哪些要素类。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Report Preference")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _report_preference { get; set; }


        /// <summary>
        /// <para>Report Name</para>
        /// <para>The unique name of the report, containing changes between the geodatabase versions.</para>
        /// <para>报表的唯一名称，包含地理数据库版本之间的更改。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Report Name")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _report_name { get; set; }


        /// <summary>
        /// <para>Area of Interest Features</para>
        /// <para>The boundary within which features will be processed.</para>
        /// <para>将在其中处理要素的边界。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Area of Interest Features")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _aoi_features { get; set; } = null;


        /// <summary>
        /// <para>ID of Generated Report</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("ID of Generated Report")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _report_id { get; set; }


        public ReportAviationChartChanges SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}